Code Monkey home page Code Monkey logo

yeda's Introduction

ידע

code size license GitHub Workflow Status (with event) GitHub top language

״ידע״ זו תבנית אתר שמאפשרת בנייה של מדריכים טקסטואליים ומילוני מונחים בעברית. לאחר ההורדה של הפרויקט, תוכלו להוסיף תוכן חדש בפשטות באמצעות קבצי markdown.

הפרויקט פותח על ידי חברי קהילת מעקף (קהילת הקוד הפתוח של ישראל) וניתן להשתמש בו בחינם ובאופן חופשי.

טכנולוגיות

הפרויקט פותח באמצעות preact, שזו פלטפורמה חסכונית מאוד בזיכרון עם ממשק כמעט זהה לשל react. הפרויקט נוצר באמצעות vite והוא מכיל typescript. בנוסף, נעשה שימוש בsass לצורך עיצוב התבנית, אם כי כמובן שלאחר ההתקנה אתם מוזמנים לשנות את העיצוב הגלובלי כרצונכם.

פיצ׳רים 📌

  • הפרויקט נבנה ב-preact ועל כן חסכוני ביותר מבחינת זיכרון. בעוד שפרויקטים אחרים בפלטפורמות כגון React.js ו-Next.js מגיעיים לג׳יגה-בייטים של זיכרון, בעוד כאן מדובר על סדר גודל של עשרות קילובייטים בלבד. כלומר, חיסכון פי עשרות עד מאות מונים.

  • הוספה של מושגים חדשים בפורמט markdown. זה מקל ומקצר את תהליך העבודה בהרבה ובכך גם ניתן להשתמש בפורמט הזה במקומות אחרים מבלי לשכתב הכל מחדש.

דרישות מקדימות 📦

וודאו ש-NodeJS מותקן אצלכם במערכת טרם ההתקנה. תוכלו להריץ את הפקודה הבאה לשם כך בשורת הפקודה או ב-terminal:

node --version

התקנה

הריצו את הפקודה

git clone https://github.com/talisraeli/Yeda.git

על מנת ליצור עותק לוקאלי של הפרויקט אצלכם. לחלופין תוכלו גם להוריד את תיקיית ה-zip ולאחר מכן לחלץ אותה לתיקייה רגילה ולפתוח את התיקייה בעורך הקוד האהוב עליכם.

לאחר מכן הריצו את הפקודה

npm install

על מנת להתקין את כל החבילות הרלוונטיות שנעשה בהן שימוש בפרויקט (כלומר, כל ה-dependencies).

תוכלו להריץ שרת פיתוח לוקאלי עם האתר באמצעות הפקודה:

npm run dev

תצוגה מקדימה 🚀

אתם יכולים לצפות בתצוגה מקדימה של הפרויקט כאן:

https://yeda.talisrae.li/

זכרו שאתם יכולים לשנות את הצבעים ואת התוכן בקלות להעדפות האישיות שלכם.

רישיון 📝

שוחרר תחת רישיון MIT

yeda's People

Contributors

jonaprojects avatar talisraeli avatar dependabot[bot] avatar

Stargazers

Sage Baram avatar Oshri Asulin avatar  avatar  avatar

Watchers

 avatar

Forkers

eyallampel1

yeda's Issues

Add responsive mobile design

Adjust font-size, width, and other parameters to make the viewport responsive.
Add an adaptive design of the side navigation bar with an hamburger menu icon toggle button to show / hide the navigation on top of the content with a blurred backdrop.

Write a documentation to the project.

  • Write a documentation explaining how to use and contribute the project in GitHub.
  • Add a practical tutorial of cloning and editing the template, wiki like, as terms in the public/terms directory, and display them in the website.

Implement a search functionality.

  • Create a new search component in the top navigation bar of the website.
  • Implement search functionality of the terms which are in the data storage.
  • Display the results in auto-complete dropdown below the search bar.
  • By submitting exact typed name of a term, redirect the client to its page route.

Design the home page and other side-pages and side-components (about, license, etc).

  • Redesign the home page, add more content and style it to be more attractive.
  • Redesign Footer component to show important hyper-links related to the project.
  • Add "about us" page, add a brief description of us and our vision of the project.
  • Add "license" page, explaining for which cases this project can be used and for which not.
  • Add "contribute" page, explaining the visitors how they can contribute to the project.

Term Metadata (title, description) isn't shown on SEO

When sending a term page across social media, SEO isn't recognized in the embed message.

For example, the link for the sample page: https://happy-field-0f5282803.3.azurestaticapps.net/מושג-לדוגמה
It recognize it as if it was the home page.

image

I think the problem is the encoding of the URI. I think that the browser reads the term name as %D7%9E%D7%95%D7%A9%D7%92-%D7%9C%D7%93%D7%95%D7%92%D7%9E%D7%94 and not מושג-לדוגמה. That's why it thinks the term name is called %D7%9E%D7%95%D7%A9%D7%92-%D7%9C%D7%93%D7%95%D7%92%D7%9E%D7%94.

The solution I recommend is to enforce decoding of the URI to get the real term name.

Add light theme.

  • Add a theme context that stores theme data (light or dark theme". Set the default to browser's default theme.
  • Store the data in local-storage, so the theme state won't change after refreshing the page.
  • Create a theme toggle button in top bar of the website.
  • Change the value of html tag data-theme attribute, based on theme state.
  • Make a light theme color palette in global.sass.

Create a static term data storage, including JSON for metadata & Markdown for the data itself.

  • Create a static data storage of JSON contains these fields:
    • name - unique name in URL.
    • displayName - the display name of the term in the header.
    • description - the content of the meta tag of type description of the term's page.
    • markdownPath - the reletive path to the Markdown file of the term's data.
  • Create a new sub-directory named terms in public directory, and add new term Markdown file in this folder.
  • Implement a Markdown-to-TSX functionality to present term's data in the page template.

Create a term page template with routing

  • Create a route for the term page template.
  • Receive the name of the term from the URL path (example: https://example.com/מס-עקיף).
  • Present the term data based on its name.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.