Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Developers have validated and created the Pub Type for “Journal Articles” (Legacy & Responsive Journal) #5

Open
gabestein opened this issue Aug 5, 2024 · 0 comments

Comments

@gabestein
Copy link
Member

Following from the relationships card, journal articles are a pub type that contain children representing artifacts in the content.

Why

  • Support Legacy to Platform migrations
  • Support Vanderbilt and Arcadia contracts
  • Be able to demo complex Pub types to prospective users

Some assumptions:

  • The content editor will create children and sibling relationships (and siblings themselves if needed) on the fly as the Pub is edited.
  • The latest version of the content will be stored on the pub, likely as a prosemirror schema, and reference child content in a way that allows editors, actions, and APIs to access children when needed.
  • Old versions of the pub will be stored as child pubs with a version type

Rouch type sketch:

  • Pub
    • Title
    • Slug
    • PublicationDate
    • CreationDate
    • Last Edited Date
    • PreviewImage
    • Description
    • Abstract
    • LatestContent
    • License
    • BackgroundImage
    • BackgroundColor
    • TextStyle
    • CitationStyle (including inline)
    • ItemLabels
    • ConnectionSettings
    • DOI
  • Children
    • DownloadablePub
    • Versions
    • Images
    • Citations
    • Footnotes
    • LaTeX blocks
    • Code blocks
    • Downloads
  • Siblings
    • Contributors
    • Collections
      - Issue Collection (DOI, volume, number, title, etc.)
      - Tags
      - Journal (ISSN, etc.)
      - Site
    • Connections

Open Questions

  • Is LatestContent stored as a prosemirror schema? HTML? Something else? How do we ergonomically create an editor that can create, query and render children and siblings, etc.
  • Is LatestContent typed to make producing PDFs etc. easier? Or do different expressions of the content get generated from a central content store?
  • If there are multiple different stores of latest content, do we need a flag to show the default?
  • If versions are stored as children, are they versions that include the full pub history, or just versions of the content? If the latter, where is the full history log of pub changes stored?
  • How to look up siblings that contain special information needed to output the content? E.g. a journal collection will contain the ISSN, which is needed in JATS outputs.
  • For publishing (and previewing) to a site, Pubs will likely need to get preview and published URLs from the site relationship. Is this stored on the site? As relationship metadata? Etc.
  • How do we make it so the pub page isn't just an alphabetized list of fields and relations with edit buttons, but also doesn't rely on ducktyping of field names? One initial thought has been to create "internal forms" that serve as the renderer for the pub page, with a backup default if there is no internal form associated with the pub type
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In progress
Development

No branches or pull requests

1 participant